Перейти к основному содержимому

Управление потоком

Оператор if

Помимо хранения информации, переменные полезны для управления тем, что показывается игроку. Для этого используются операторы if.

Оператор if позволяет контролировать, будет ли показан определённый блок контента. Вы указываете условие, которое проверяется; если оно возвращает значение "истина", то все строки между операторами <<if>> и <<endif>> выполняются.

Например, рассмотрим следующий код:

<<set $gold_amount = 5>>

Я хочу купить пирог!

<<if $gold_amount < 10>>
Но у меня недостаточно денег!
<<endif>>

В этом примере переменной $gold_amount присваивается значение 5. Затем показывается строка "Я хочу купить пирог!", после чего проверяется, меньше ли $gold_amount 10. Если это так (а так и есть), то будет выполнена строка "Но у меня недостаточно денег!".

Операторы elseif и else

Вы можете использовать операторы elseif и else, чтобы обрабатывать различные ситуации в одном операторе if.

Оператор elseif проверяет условие, если условие if, а также все предыдущие elseif, не выполнились.

Оператор else не имеет условия и выполняется, если все предыдущие проверки не прошли.

Пример:

Я хочу купить пирог!

<<if $gold_amount < 10>>
Но у меня недостаточно денег!
<<elseif $gold_amount < 15>>
Нужно ещё немного подкопить!
<<else>>
И куплю!
<<endif>>

Этот код покажет различные строки в зависимости от значения $gold_amount. Проверки выполняются сверху вниз, что означает, что чтобы выполниться, проверка в elseif или else должна следовать за провалившимися предыдущими условиями.

  • Если меньше 10, будет выполнена строка "Но у меня недостаточно денег!".
  • Если меньше 15, но больше или равно 10, будет выполнена строка "Нужно ещё немного подкопить!".
  • В остальных случаях будет выполнена строка "И куплю!".
Информация

Условие, используемое в операторах if и elseif, должно возвращать булево значение (то есть true или false). Например, <<if 1>> не разрешён, но <<if 1 == 1>> — разрешён. Также не разрешено использование переменных напрямую в условиях, даже если это булевые переменные, например, <<if $isTrue>>, где $isTrue — булевая переменная. Вместо этого используйте <<if $isTrue == true>>.

Условные ответы

При выводе вариантов ответа для игрока иногда может потребоваться сделать некоторые из них недоступными. Вы можете сделать это, добавив условие к ответу.

Например, если у вас есть переменная, которая отслеживает "очки репутации" игрока, называемая $reputation, вы можете сделать определённые варианты доступными только при достижении определённого уровня репутации.

Условие добавляется к варианту через оператор if. Пример:

Тебе сюда нельзя!
-> Конечно можно! Босс меня знает! <<if $reputation > 10>>
-> Пожалуйста?

Когда t-Plot проверяет этот набор ответов, оно проверяет выражение в if. Если оно возвращает false, то этот ответ пользователь не увидит.